/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 

//package components;

/* TextDemo.java requires no other files. */

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;

import javax.swing.*;
import javax.xml.bind.JAXBException;

@SuppressWarnings("serial")
public class TextGUI extends JFrame {
    JTextField textField;
    JTextArea textArea;
	JPanel mainPane=new JPanel(new GridBagLayout());
	GridBagConstraints c = new GridBagConstraints();

    TextGUI() {
    	
        super("Text Dialogue");
        setBounds(0,0,400,150);
        super.setResizable(false);

        
        addWindowListener(new WindowAdapter()
        {
           public void windowClosing(WindowEvent e)
           {
         	   System.out.println("end of program");
        	   System.exit(0); //calling the method is a must
           }
        });
        
        Container con=this.getContentPane(); // inherit main frame
        con.add(mainPane); // add the panel to frame

        textField = new JTextField(20);
        textField.addActionListener(new TextL());

        textArea = new JTextArea(5, 20);
        textArea.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(textArea);

        //Add Components to this panel.
        GridBagConstraints c = new GridBagConstraints();
        c.gridwidth = GridBagConstraints.REMAINDER;

        c.fill = GridBagConstraints.HORIZONTAL;
        mainPane.add(textField, c);

        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        mainPane.add(scrollPane, c);
        
        this.setVisible(true);
    }
    
	class TextL implements ActionListener {
		public void actionPerformed(ActionEvent e) {
	        String text = textField.getText();
	        try {
				TextHandling.receive(text);
			} catch (JAXBException e1) {
				e1.printStackTrace();
			} catch (IOException e1) {
				e1.printStackTrace();
			}

		}
	}
    
//    This can be used to find out how many words exist (by counting spaces)
    public int numberOfSpaces(String string){ 
    	int i=0;
    	int count=0;
        for (int j=0;j<string.length();j++){
        	if(string.charAt(j)==" ".charAt(0)){
        		count = count + 1;
        	}
        }
        System.out.println("spaces = "+count);
		return i;
    }
}
